perm filename MSSAUX.F4[MSS,LCS]1 blob
sn#081721 filedate 1974-01-12 generic text, type T, neo UTF8
00100 C THIS AIDS IN EXTRACTING PARTS FROM SCORES - OR PACKING OF .DAT
00200 C FILES FOR EASIER STORAGE.
00300 DIMENSION XN(2000),RSTFAC(8),IV(78),LIST(200),PWDS(250),RN(2000)
00400 1,XWDS(250),STFF(8),NLIST(200),NX(200)
00500 C**** RN MIGHT HAVE TO BE 4000 ******
00600 EQUIVALENCE (XN,NX)
00700
00800 JR=0
00900 72 TYPE 71
01000 ACCEPT 2,N
01100 IF(N.NE.'HELP')GO TO 73
01200 TYPE 14
01300 GO TO 72
01400 73 IF(N.NE.'PARTS')GO TO 211
01500 71 FORMAT(' TYPE "MTA", "PARTS", "PACK" OR "UNPACK" ',$)
01600 REWIND 1
01700 14 FORMAT(' FOR "READ WHICH STAFF#?" GIVE N1, N2, N3'/'
01800 1 N2=TRANSP. STEPS, N3=1=WILL BE SAME FOR ALL FILES'/)
01900 TYPE 1
02000 ACCEPT 2,NAME
02100 13 CALL OFILE(1,NAME)
02200 XWDS(1)=1
02300 RM=0
02400 L=1
02500 LP=1
02600 TYPE 44
02700 ACCEPT 5,RS
02800 10 TYPE 3
02900 LK=LP
03000 ACCEPT 2,NAME
03100 IF(NAME.EQ.' ')GO TO 20
03200 JZ=0
03300 IF(RM.NE.0)GO TO 77
03400 TYPE 4
03500 ACCEPT 5,SN,TR,RM
03600 GO TO 77
03700 C TYPE 2ND NUM FOR TRANSPOSE, 3RD NUM FOR ALWAYS SAME STFF.
03800 8 DO 6 K=1,ITEM
03900 J=PWDS(K)
04000 IF(RN(J+1).NE.4)GO TO 80
04100 IF(RN(J).NE.2)GO TO 80
04200 C FOUND A BAR LINE
04300 RN(J+4)=1
04400 GO TO 81
04500 80 IF(RN(J+3).NE.SN)GO TO 6
04600 JZ=-1
04700 81 JA=PWDS(K+1)
04800 DO 7 KA=J,JA-1
04900 XN(LK)=RN(KA)
05000 7 LK=LK+1
05100 IF(L.LT.250.AND.LK.LE.2000)GO TO 50
05200 TYPE 9
05300 GO TO 20
05400 16 FORMAT(' STAFF NOT FOUND'/)
05500 50 R=XN(LP+1)
05600 IF(TR.NE.0.AND.(R.EQ.1.OR.R.EQ.8.OR.R.EQ.9))GO TO 52
05700 51 XN(LP+3)=RS
05800 L=L+1
05900 LP=LK
06000 XWDS(L)=LP
06100 6 CONTINUE
06200 IF(JZ)GO TO 17
06300 L=JX
06400 LP=JY
06500 TYPE 16
06600 GO TO 10
06700 17 JX=L
06800 JY=LP
06900 RS=RS-1
07000 IF(RS.GT.-4)GO TO 10
07100 20 L=JX-1
07200 J=1
07300 WRITE(1),L,JY,
07400 1 (XWDS(K),K=1,L+1),(XN(K),K=1,JY-1),J,J,J,J
07500 15 END FILE 1
07600 CALL EXIT
07700 1 FORMAT(' TYPE OUTPUT FILE NAME ',$)
07800 2 FORMAT(A5)
07900 3 FORMAT(' TYPE FILE NAME ',$)
08000 4 FORMAT(' READ WHICH STAFF # ? ',$)
08100 5 FORMAT(5F)
08200 9 FORMAT(' NO ROOM FOR THIS ONE')
08300 44 FORMAT(' TYPE TOP STAFF # ',$)
08400
08500 C TO PACK AND UNPACK FILES FOR MSS PRINTING PROG.(FOR STORAGE ONLY)
08600 211 IF(N.EQ.'MTA')GO TO 200
08700 IF(N.EQ.'UNPAC')GO TO 311
08800 TYPE 1
08900 ACCEPT 2,ONAME
09000 REWIND 1
09100 CALL OFILE (1,ONAME)
09200 411 TYPE 511
09300 511 FORMAT(' TYPE FILE NAME OR X(=EXIT) ',$)
09400 ACCEPT 2,NAME
09500 IF(NAME.EQ.'X'.OR.NAME.EQ.' ')GO TO 811
09600 77 REWIND 21
09700 177 CALL IFILE(21,NAME)
09750 2202 IF(N.EQ.'UNPAC')GO TO 3202
09800 READ(21),ITEM,I,
09900 1 (PWDS(K),K=1,ITEM+1),(RN(K),K=1,I-1),ISCR,(IV(K),K=1,ISCR),
10000 1 LCNT,(LIST(K),K=1,LCNT)
10100 IF(I.NE.0)GO TO 91
10200 TYPE 92
10300 CALL EXIT
10400 92 FORMAT(' **** UNPACK IT FIRST ****')
10500 91 IF(N.EQ.'PARTS')GO TO 8
10600 READ(21)RSTFAC,STFF
10700 IF(JR)GO TO 217
10800 IF(N.EQ.'UNPAC')GO TO 74
10900
11000 WRITE (1),NAME
11010 WRITE(1),ITEM,I,
11040 1 (PWDS(K),K=1,ITEM+1),(RN(K),K=1,I-1),ISCR,(IV(K),K=1,ISCR),
11070 1 LCNT,(LIST(K),K=1,LCNT),RSTFAC,STFF,K
11085 GO TO 411
11100 911 WRITE(1),ITEM,I,
11200 1 (PWDS(K),K=1,ITEM+1),(RN(K),K=1,I-1),ISCR,(IV(K),K=1,ISCR),
11300 1 LCNT,(LIST(K),K=1,LCNT),K
11400 WRITE(1),RSTFAC,STFF,IBOT,ITOP,K
11500 C***** K IS BECAUSE OF FORTRAN WRITE BUG!!!!!!
11600 CC IF(N.EQ.'PACK')GO TO 411
11700 811 END FILE 1
11800 IF(N.EQ.'PACK')CALL EXIT
11900 IF(JR)GO TO 216
12000 GO TO 79
12010 3202 READ(21)ITEM,I,(PWDS(K),K=1,ITEM+1),(RN(K),K=1,I-1),ISCR,
12020 1 (IV(K),K=1,ISCR),LCNT,(LIST(K),K=1,LCNT),RSTFAC,STFF
12030 GO TO 74
12100
12200 200 TYPE 201
12300 REWIND 16
12400 ACCEPT 111,L
12500 IF(L.EQ.'W')GO TO 202
12600 1200 CALL IFILE(16,N)
12700 READ(16)NLIST
12800 IF(L.EQ.'W')GO TO 202
12900 DO 204 KX=1,200
13000 IF(NLIST(KX).EQ.' ')GO TO 205
13100 IF(MOD(KX,16).EQ.0)PAUSE
13200 204 TYPE 112,KX,NLIST(KX)
13300 205 M=1
13400 L=1
13500 209 TYPE 206
13600 ACCEPT 2,NX(M)
13700 REREAD 207,J,N
13800 CZ IF(N.NE.0)GO TO 208
13900 IF(NX(M).EQ.' ')GO TO 210
14000 M=M+1
14100 GO TO 209
14200 210 J=1
14300 216 IF(NX(J).EQ.' ')GO TO 219
14400 DO 212 KX=L,200
14500 READ(16),NJ,ITEM,I,PWDS,RN,ISCR,IV,LCNT,LIST,
14600 1 RSTFAC,STFF,IBOT,ITOP
14700 212 IF(NJ.EQ.NX(J))GO TO 218
14800 218 NAME=NJ
14900 J=J+1
15000 L=KX+1
15100 GO TO 179
15200 220 FORMAT(' NEW TAPE OR OLD? ',$)
15300
15400 202 TYPE 220
15500 ACCEPT 111,LX
15600 IF(LX.EQ.'O')GO TO 1200
15700 CALL OFILE(16,N)
15900 JR=-1
16000 N=0
16100 214 N=N+1
16110 TYPE 3
16200 ACCEPT 203,NLIST(N)
16300 IF(NLIST(N).NE.' ')GO TO 214
16400 213 WRITE(16),NLIST
16500 M=1
16600 215 NAME=NLIST(M)
16700 GO TO 177
16800 217 WRITE(16),NAME,ITEM,I,PWDS,RN,ISCR,IV,LCNT,LIST,
16900 1 RSTFAC,STFF,IBOT,ITOP,K
17000 TYPE 111,K,NAME
17100 M=M+1
17200 IF(M.NE.N)GO TO 215
17300 219 REWIND 16
17400 CALL EXIT
17500 201 FORMAT(' READ OR WRITE? ',$/)
17600 203 FORMAT(200A5)
17700 206 FORMAT(' TYPE FILE NAME OR NUMS. ',$)
17800 112 FORMAT(I4,2XA5)
17900 207 FORMAT(2I)
18000 311 TYPE 511
18100 ACCEPT 2,NAME
18200 IF(NAME.EQ.'X'.OR.NAME.EQ.' ')CALL EXIT
18300 CALL IFILE(21,NAME)
18400 79 READ (21,END=75),NAME
18500 GO TO 2202
18600 74 K=' '
18700 TYPE 111,K,NAME
18800 TYPE 76
18900 ACCEPT 2,K
19000 IF(K.EQ.'PASS'.OR.K.EQ.'P')GO TO 79
19100 IF(K.EQ.'X')CALL EXIT
19200 IF(K.NE.' ')NAME=K
19300 179 CALL OFILE(1,NAME)
19400 GO TO 911
19500 75 CALL EXIT
19600 76 FORMAT(' TYPE <CR>, <PASS> OR NEW NAME. X=EXIT ',$)
19700 111 FORMAT(A1,A5)
19800
19900 52 A=XN(LP+4)
20000 XN(LP+4)=A+TR
20100 C TRANSPOSES ONLY BY STAFF STEPS FOR NOW
20200 X=XN(LP+5)
20300 IF(XN(LP+1).EQ.1)GO TO 11
20400 XN(LP+5)=X+TR
20500 GO TO 51
20600 11 IF(TR.EQ.4.AND.AMOD(A,7.0).EQ.0)GO TO 101
20700 IF(AMOD(TR-1.0,7.0).NE.0)GO TO 51
20800 C NEXT IS FOR Bb TRANSP.
20900 B=AMOD(A+7.0,7.0)
21000 IF(B.NE.0.AND.B.NE.3)GO TO 51
21100 C FINDS ORIG. E OR B
21200 101 M=AMOD(X,10.0)
21300 C FINDS ACCID.
21400 X=X-M
21500 C STEM DIR. AND DECI.
21600 B=3.
21700 C CHANGES FLAT TO NATURAL SIGN.
21800 IF(M.EQ.0.OR.M.EQ.3)B=2
21900 C NO PROVISION YET FOR ## OR bb
22000 XN(LP+5)=X+B
22100 GO TO 51
22200 END